package com.sromku.bugsnag.utils;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import org.apache.commons.codec.binary.Base64;
public class SerializationUtils {
public static String serialize(Serializable object) {
String encoded = null;
try {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
objectOutputStream.writeObject(object);
objectOutputStream.close();
encoded = Base64.encodeBase64String(byteArrayOutputStream.toByteArray());
}
catch (IOException e) {
e.printStackTrace();
}
return encoded;
}
@SuppressWarnings("unchecked")
public static <T extends Serializable> T deserialize(String string, Class<T> clazz) {
T object = null;
if (string == null) {
return object;
}
byte[] bytes = Base64.decodeBase64(string.getBytes());
try {
ObjectInputStream objectInputStream = new ObjectInputStream(new ByteArrayInputStream(bytes));
object = (T) objectInputStream.readObject();
}
catch (Exception e) {
e.printStackTrace();
}
return object;
}
}